6.12 索引排序
前面学习的df_sort_values()函数是对数据的排序,如果需要对索引排序,则使用df.sort_index()函数,它们的排序法则相同,只是参数上与df_sort_value()函数略有不同,结构如下:
df.sort_index(axis=0,level=None,ascending=True,inplace=False,kind=”quicksort”,np_position=”last”,sort_remaining=True,ingore_index=False,key=None)
axis:索引排序的方向,axis=0表示对行索引排序,axis=1表示对列索引排序;
level:指定排序的索引层,如果未指定,则按层级从高到低的顺序排序
ascending:指序指序的方式,升序还是降序,默认是升序排列。
inplace:就是修改;
kind:排序算法(一般不关注)
na_position:设置缺失值的显示位置。显示在最前用first,显示在最后用last;
sort_remaining:如果为True,且按级别和索引排序是多层,反之按指定级别排序也按其他级别(按顺序)排序;
ignore_index:是否重新设置表格索引
key:使用函数对索引自定义排序(重点关注)
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.12 索引排序.xlsx" , index_col =[ 0,1 ])
print (df)
df1=df.sort_index( ascending =[ True,False ],
level =[ "类型","地区" ],
axis = 0 )
print (df1)
返回:
1季度 | 2季度 | 3季度 | 4季度 | ||
---|---|---|---|---|---|
地区 | 类型 | ||||
上海 | Maya-动画 | 8 | 11 | 81 | 21 |
keynote-办公 | 10 | 40 | 45 | 74 | |
成都 | AI-设计 | 54 | 79 | 5 | 35 |
PS-设计 | 18 | 48 | 7 | 48 | |
北京 | PPT-办公 | 6 | 31 | 59 | 11 |
Excel-办公 | 14 | 89 | 50 | 8 | |
3DS MAX-动画 | 3 | 50 | 33 | 56 |
1季度 | 2季度 | 3季度 | 4季度 | ||
---|---|---|---|---|---|
地区 | 类型 | ||||
北京 | 3DS MAX-动画 | 3 | 50 | 33 | 56 |
成都 | AI-设计 | 54 | 79 | 5 | 35 |
北京 | Excel-办公 | 14 | 89 | 50 | 8 |
上海 | Maya-动画 | 8 | 11 | 81 | 21 |
北京 | PPT-办公 | 6 | 31 | 59 | 11 |
成都 | PS-设计 | 18 | 48 | 7 | 48 |
上海 | keynote-办公 | 10 | 40 | 45 | 74 |
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.12 索引排序.xlsx" , index_col =[ 0,1 ])
print (df)
df1=df.sort_index(
key = lambda s:s.str.len(),
ascending = True ,
level = "类型" ,
axis = 0 )
print (df1)
返回:
1季度 | 2季度 | 3季度 | 4季度 | ||
---|---|---|---|---|---|
地区 | 类型 | ||||
成都 | AI-设计 | 54 | 79 | 5 | 35 |
PS-设计 | 18 | 48 | 7 | 48 | |
北京 | PPT-办公 | 6 | 31 | 59 | 11 |
上海 | Maya-动画 | 8 | 11 | 81 | 21 |
北京 | Excel-办公 | 14 | 89 | 50 | 8 |
上海 | keynote-办公 | 10 | 40 | 45 | 74 |
北京 | 3DS MAX-动画 | 3 | 50 | 33 | 56 |